package asia.hymsk.spring.mapper;

import asia.hymsk.spring.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 花于陌上开
 */
@Mapper
@Repository
public interface UserMapper {
    /**
     * 用户是否存在
     *
     * @param userName    用户名|null
     * @param phoneNumber 手机号|null
     * @param email       邮箱|null
     * @return 存在(1)/不存在(0)
     */
    int isExist(String userName, String phoneNumber, String email);

    /**
     * 使用邮箱注册
     *
     * @param userName 用户名
     * @param password 用户密码
     * @param email    用户邮箱
     * @return 注册成功(1)/失败(0)
     */
    int registerByEmail(String userName, String password, String email);

    /**
     * 查询数据库中密码(根据用户名)
     *
     * @param userName 用户名
     * @return 用户对象
     */
    User selectByName(String userName);

    /**
     * 查询数据库中密码(根据用户ID)
     *
     * @param userId 用户ID
     * @return 用户对象
     */
    User selectById(String userId);


    /**
     * 查询数据库中密码(根据邮箱)
     *
     * @param email 邮箱
     * @return 用户对象
     */
    User selectByEmail(String email);


    /**
     * 使用邮箱重置密码
     *
     * @param email    邮箱
     * @param password 密码
     * @return 重置成功(1)/失败(0)
     */
    int updatePasswordByEmail(String email, String password);

    List<User> list();

    void delete(int userId);


}
